package com.tanhua.dubbo.api.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.tanhua.domain.db.User;
import com.tanhua.dubbo.api.UserApi;
import com.tanhua.dubbo.mapper.UserMapper;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * 对外发布的dubbo服务，可以给消费者调用
 *
 * @Service 1. 导入dubbo的包：org.apache.dubbo.config.annotation.Service
 * 2. 不要导入spring的包：org.springframework.stereotype.Service
 * <p>
 * 区分：
 * 1. 只有在tanhua-dubbo-service工程中才会发布服务，才使用dubbo的@Service包
 * 2. 其他情况全部都用spring提供的@Service包
 */
@Service(timeout = 100000)
public class UserApiImpl implements UserApi {
    
    // @Autowired 去容器中根据UserMapper这个接口类型找对应的对象，注入进来
    @Autowired
    private UserMapper userMapper;
    
    @Override
    public Long save(User user) {
        // mybatis-plus在处理保存时候，会自动把自增长主键id值设置到对象属性中
        userMapper.insert(user);
        return user.getId();
    }
    
    @Override
    public User findByMobile(String mobile) {
        // 查询条件
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("mobile", mobile);
        // 查询
        return userMapper.selectOne(queryWrapper);
    }
    
    /**
     * 更换手机号
     */
    @Override
    public void updatePhone(User user) {
        userMapper.updateById(user);
    }
    
    
}
